package com.cskaoyan.javase.oop2._2polymorphic._1basic;

/**
 * 多态的访问特征:
 *
 * 首先父子类中出现同名成员时,
 * 如果是同名成员变量,是不存在多态现象的
 * 用一句话来总结，对象名点成员变量的访问特征：
 * 编译时（访问范围）看左边，运行时（访问结果）还看左边。
 * 只需要关注引用即可,无需关心对象.
 *
 * 当父子类中出现同名成员方法时,是存在多态现象的
 * 用一句话来总结，对象名点成员方法的访问特征：
 * 编译（访问范围）看左边，运行时（调用结果）看右边。
 *
 * @since 15:04
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Father fs;
        fs = new Son();
        System.out.println(fs.num);
        fs.test();
        fs = new LittleSon();
        System.out.println(fs.num);
        fs.test();

    }
}

class Father {
    int num = 10;
    public void test(){
        System.out.println("father");
    }
}

class Son extends Father {
    int num = 20;

    @Override
    public void test() {
        System.out.println("son");
    }
}

class LittleSon extends Father {
    int num = 30;

    @Override
    public void test() {
        System.out.println("little son");
    }
}